package com.css.fxfzypg.manage.building.repository.entity;

import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.afterturn.easypoi.handler.inter.IExcelDataModel;
import cn.afterturn.easypoi.handler.inter.IExcelModel;
import com.css.fxfzypg.base.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

@Data
public class BuildingEntity implements Serializable, IExcelDataModel, IExcelModel {
    private String id;
    /**
     *任务编号
     */
    @Excel(name = "任务编号*")
    @GcData(name="任务编号")
    @GData(name="任务编号")
    @DcData(name="任务编号")
    @ZmData(name="任务编号")
    @ZhData(name = "任务编号")
    @TData(name="任务编号")
    @MData(name="任务编号")
    @OData(name="任务编号")
    @SData(name="任务编号")
    private String taskCode;
    /**
     *任务名称
     */
    private String taskName;
    /**
     *建筑编号
     */
    @OData(name="建筑编号")
    @SData(name="建筑编号")
    @TData(name="建筑编号")
    @ZmData(name="建筑编号")
    @DcData(name="建筑编号")
    @GData(name="建筑编号")
    @GcData(name="建筑编号")
    @ZhData(name = "建筑编号")
    @MData(name="建筑编号")
    private String buildCode;
    /**
     *省
     */
    @OData(name="建筑地点-省")
    @SData(name="建筑地点-省")
    @TData(name="建筑地点-省")
    @ZmData(name="建筑地点-省")
    @DcData(name="建筑地点-省")
    @GData(name="建筑地点-省")
    @GcData(name="建筑地点-省")
    @Excel(name = "建筑地点-省*")
    @ZhData(name = "建筑地点-省")
    @MData(name="建筑地点-省")
    private String province;
    /**
     *省id
     */
    private String provinceId;
    /**
     *市
     */
    @OData(name="建筑地点-市")
    @SData(name="建筑地点-市")
    @TData(name="建筑地点-市")
    @ZmData(name="建筑地点-市")
    @ZhData(name = "建筑地点-市")
    @DcData(name="建筑地点-市")
    @GData(name="建筑地点-市")
    @GcData(name="建筑地点-市")
    @Excel(name = "建筑地点-市*")
    @MData(name="建筑地点-市")
    private String city;
    /**
     *市id
     */
    private String cityId;
    /**
     *县
     */
    @OData(name="建筑地点-县")
    @SData(name="建筑地点-县")
    @TData(name="建筑地点-县")
    @ZmData(name="建筑地点-县")
    @ZhData(name = "建筑地点-县")
    @DcData(name="建筑地点-县")
    @GData(name="建筑地点-县")
    @GcData(name="建筑地点-县")
    @Excel(name = "建筑地点-县*")
    @MData(name="建筑地点-县")
    private String county;
    /**
     *县id
     */
    private String countyId;
    /**
     *乡镇街道 详细信息
     */
    @OData(name="建筑地点-乡")
    @SData(name="建筑地点-乡")
    @TData(name="建筑地点-乡")
    @ZmData(name="建筑地点-乡")
    @ZhData(name = "建筑地点-乡")
    @DcData(name="建筑地点-乡")
    @GData(name="建筑地点-乡")
    @GcData(name="建筑地点-乡")
    @Excel(name = "建筑地点-乡*")
    @MData(name="建筑地点-乡")
    private String country;
    /**
     *经度
     */
    @TData(name="经度")
    @ZmData(name="经度")
    @ZhData(name = "经度")
    @DcData(name="经度")
    @Excel(name = "经度*")
    @GData(name="经度")
    @GcData(name="经度")
    @MData(name="经度")
    @OData(name="经度")
    @SData(name="经度")
    private String longitude;
    /**
     *纬度
     */
    @TData(name="纬度")
    @ZmData(name="纬度")
    @ZhData(name = "纬度")
    @DcData(name="纬度")
    @Excel(name = "纬度*")
    @GcData(name="纬度")
    @GData(name="纬度")
    @MData(name="纬度")
    @OData(name="纬度")
    @SData(name="纬度")
    private String latitude;
    /**
     *设防烈度
     */
    @TData(name="设防烈度")
    @ZmData(name="设防烈度")
    @ZhData(name = "设防烈度")
    @DcData(name="设防烈度")
    @GData(name="设防烈度")
    @GcData(name="设防烈度")
    @Excel(name = "设防烈度*")
    @MData(name="设防烈度")
    @OData(name="设防烈度")
    @SData(name="设防烈度")
    private String intensity;
    /**
     *建造年代
     */
    @TData(name="建造年代")
    @ZmData(name="建造年代")
    @ZhData(name = "建造年代")
    @DcData(name="建造年代")
    @GData(name="建造年代")
    @GcData(name="建造年代")
    @Excel(name = "建造年代*")
    @MData(name="建造年代")
    @OData(name="建造年代")
    @SData(name="建造年代")
    private String buildYears;
    /**
     *用途
     */
    @TData(name="用途")
    @ZmData(name="用途")
    @ZhData(name = "用途")
    @GData(name="用途")
    @GcData(name="用途")
    @Excel(name = "用途*")
    @DcData(name="用途")
    @MData(name="用途")
    @OData(name="用途")
    @SData(name="用途")
    private String purpose;
    /**
     *层数
     */
    @TData(name="层数")
    @ZmData(name="层数")
    @ZhData(name = "层数")
    @GData(name="层数")
    @GcData(name="层数")
    @Excel(name = "层数*")
    @DcData(name="层数")
    @MData(name="层数")
    @OData(name="层数")
    @SData(name="层数")
    private String layerNum;
    /**
     *高度（m）
     */
    @TData(name="高度（m）")
    @ZmData(name="高度（m）")
    @ZhData(name = "高度（m）")
    @DcData(name="高度（m）")
    @GData(name="高度（m）")
    @Excel(name = "高度（m）*")
    @GcData(name="高度（m）")
    @MData(name="高度（m）")
    @OData(name="高度（m）")
    @SData(name="高度（m）")
    private String height;
    /**
     *地形条件（山体滑坡、山崩危险）
     */
    @TData(name="地形条件（有无山体滑坡、山崩危险）")
    @ZmData(name="地形条件（有无山体滑坡、山崩危险）")
    @ZhData(name = "地形条件（有无山体滑坡、山崩危险）")
    @DcData(name="地形条件（有无山体滑坡、山崩危险）")
    @GData(name="地形条件（有无山体滑坡、山崩危险）")
    @GcData(name="地形条件（有无山体滑坡、山崩危险）")
    @MData(name="地形条件（有无山体滑坡、山崩危险）")
    @Excel(name = "地形条件（有无山体滑坡、山崩危险）*")
    @OData(name="地形条件（有无山体滑坡、山崩危险）")
    @SData(name="地形条件（有无山体滑坡、山崩危险）")
    private String terrainConditions;
    /**
     *地基情况（下部软弱土层）
     */
    @TData(name="地基情况（下部软弱土层）")
    @ZmData(name="地基情况（下部软弱土层）")
    @ZhData(name = "地基情况（下部软弱土层）")
    @DcData(name="地基情况（下部软弱土层）")
    @GData(name="地基情况（有无下部软弱土层）")
    @GcData(name="地基情况（有无下部软弱土层）")
    @MData(name="地基情况（有无下部软弱土层）")
    @Excel(name = "地基情况（有无下部软弱土层）*")
    @OData(name="地基情况（有无下部软弱土层）")
    @SData(name="地基情况（有无下部软弱土层）")
    private String foundationCondition;
    /**
     *平面型规则
     */
    @TData(name="平面型规则")
    @ZmData(name="平面型规则")
    @ZhData(name = "平面型规则")
    @DcData(name="平面型规则")
    @GData(name="平面型规则")
    @GcData(name="平面型规则")
    @MData(name="平面型规则")
    @Excel(name = "平面型规则*")
    @OData(name="平面型规则")
    @SData(name="平面型规则")
    private String planarRule;
    /**
     *竖向规则性
     */
    @TData(name="竖向规则性")
    @ZmData(name="竖向规则性")
    @ZhData(name = "竖向规则性")
    @DcData(name="竖向规则性")
    @GData(name="竖向规则性")
    @GcData(name="竖向规则性")
    @MData(name="竖向规则性")
    @Excel(name = "竖向规则性*")
    @OData(name="竖向规则性")
    @SData(name="竖向规则性")
    private String verticalRule;
    /**
     *出屋面构件
     */
    @TData(name="出屋面构件")
    @ZmData(name="出屋面构件")
    @ZhData(name = "出屋面构件")
    @DcData(name="出屋面构件")
    @GData(name="出屋面构件")
    @GcData(name="出屋面构件")
    @Excel(name = "出屋面构件*")
    @MData(name="出屋面构件")
    @OData(name="出屋面构件")
    @SData(name="出屋面构件")
    private String roofComponent;

    /**
     *房屋状况
     */
    @TData(name="房屋状况")
    @ZmData(name="房屋状况")
    @ZhData(name = "房屋状况")
    @DcData(name="房屋状况")
    @GData(name="房屋状况")
    @GcData(name="房屋状况")
    @Excel(name = "房屋状况*")
    @MData(name="房屋状况")
    @OData(name="房屋状况")
    @SData(name="房屋状况")
    private String housingCondition;
    /**
     *程度描述
     */
    @TData(name="程度描述")
    @ZmData(name = "程度描述")
    @ZhData(name = "程度描述")
    @DcData(name="程度描述")
    @GData(name="程度描述")
    @GcData(name="程度描述")
    @Excel(name = "程度描述*")
    @MData(name="程度描述")
    @OData(name="程度描述")
    @SData(name="程度描述")
    private String degreeDescription;
    /**
     *抗震能力
     */
    @TData(name="抗震能力")
    @ZmData(name = "抗震能力")
    @ZhData(name = "抗震能力")
    @DcData(name="抗震能力")
    @GData(name="抗震能力")
    @GcData(name="抗震能力")
    @Excel(name = "抗震能力*")
    @MData(name="抗震能力")
    @OData(name="抗震能力")
    @SData(name="抗震能力")
    private String seismicCapacity;
    /**
     *备注
     */
    @TData(name="备注")
    @ZmData(name = "备注")
    @ZhData(name = "备注")
    @DcData(name="备注")
    @GData(name="备注")
    @GcData(name="备注")
    @Excel(name = "备注")
    @MData(name="备注")
    @OData(name="备注")
    @SData(name="备注")
    private String remarks;
    /**
     *建筑结构
     */
    @TData(name="建筑结构")
    @ZmData(name = "建筑结构")
    @ZhData(name = "建筑结构")
    @DcData(name="建筑结构")
    @GData(name="建筑结构")
    @GcData(name="建筑结构")
    @Excel(name = "建筑结构")
    @MData(name="建筑结构")
    @OData(name="建筑结构")
    @SData(name="建筑结构")
    private String buildingStructure;


    /**
     *图片
     */
    private String picture;

    /**
     * 指定典型结构房屋图片
     */
    private String specifyPicture;

    //高层结构-结构类型
//    @Excel(name = "高层结构-结构类型")
    @GcData(name = "高层建筑-结构类型")
    @Excel(name = "高层建筑-结构类型*")
    private String highStructureType;

    //钢结构-结构类型
    @GData(name="钢结构-结构类型")
    @Excel(name = "钢结构-结构类型*")
    private String steelStructureType;


    //混凝土结构
    /**
     * 填充墙与柱连接方式
     */
    @DcData(name="填充墙与柱连接方式")
    @Excel(name = "填充墙与柱连接方式*")
    private String hntConnectionType;
    /**
     *楼梯间位置（是否在近端或转角）
     */
    @Excel(name = "多层钢筋混凝土楼梯间位置（是否在近端或转角）*")
    @DcData(name="楼梯间位置（是否在近端或转角）")
    private String hntStairsPosition;
    /**
     *主要柱截面尺寸
     */
    @DcData(name="主要柱截面尺寸（mm*mm）")
    @Excel(name = "主要柱截面尺寸（mm*mm）*")
    private String hntColumnSectionSize;
    /**
     *主要梁截面尺寸
     */
    @DcData(name="主要梁截面尺寸（mm*mm）")
    @Excel(name = "主要梁截面尺寸（mm*mm）*")
    private String hntBeamSectionSize;
    /**
     *薄弱环节
     */
    @DcData(name="薄弱环节")
    @Excel(name = "薄弱环节*")
    private String hntWeakLink;
    /**
     *最大柱间距(m)
     */
    @DcData(name="最大柱间距(m)")
    @Excel(name = "最大柱间距(m)*")
    private String hntMaxColumnCpacing;
    /**
     *最大层高(m)
     */
    @DcData(name="最大层高(m)")
    @Excel(name = "最大层高(m)*")
    private String hntMaximumFloorHeight;
    /**
     *梁最大跨度(m)
     */
    @DcData(name="梁最大跨度(m)")
    @Excel(name = "梁最大跨度(m)*")
    private String hntMaxSpanSeam;

    //砖混结构
    /**
     * 楼盖类型
     */
    @Excel(name = "楼盖类型*")
    @ZhData(name = "楼盖类型")
    private String zhFloorType;

    /**
     *屋盖类型
     */
    @ZhData(name = "砖混结构-屋盖类型")
    @Excel(name = "砖混结构-屋盖类型*")
    private String zhRoofType;//!!!

    /**
     *墙体材料
     */
    @ZhData(name = "砖混结构-墙体材料")
    @Excel(name = "砖混结构-墙体材料*")
    private String zhWallMaterials;
    /**
     *墙体厚度-内墙（mm）
     */
    @ZhData(name = "墙体厚度-内墙（mm）")
    @Excel(name = "墙体厚度-内墙（mm）*")
    private String zhWallThicknessInterior;
    /**
     *墙体厚度-外墙（mm）
     */
    @ZhData(name = "墙体厚度-外墙（mm）")
    @Excel(name = "墙体厚度-外墙（mm）*")
    private String zhWallThicknessExterior;
    
    @Excel(name = "砂浆类别*")
    @ZhData(name = "砂浆类别")
    private String zhMortarType;
    
    @Excel(name = "砂浆强度*")
    @ZhData(name = "砂浆强度")
    private String zhMortarStrength;
    
    @Excel(name = "砖混-承重体系*")
    @ZhData(name = "承重体系")
    private String zhBearingSystem;
    
    @Excel(name = "承重墙砌筑方式*")
    @ZhData(name = "承重墙砌筑方式")
    private String zhBearingMode;
    
    @Excel(name = "楼梯间位置（是否在近端或转角）*")
    @ZhData(name = "楼梯间位置（是否在近端或转角）")
    private String zhStaircaseLocation;
    
    @Excel(name = "大洞窗,转角窗*")
    @ZhData(name = "大洞窗,转角窗")
    private String zhHoleCrner;
    
    @Excel(name = "砖混结构-构造柱*")
    @ZhData(name = "构造柱")
    private String zhStructuralColumn;

    @ZhData(name = "圈梁")
    @Excel(name = "砖混结构-圈梁*")
    private String zhRingBeam;
    

    
    //砖木结构 (砌体)
    @Excel(name = "砖木结构-屋盖类型*")
    @ZmData(name = "屋盖类型")
    private String zmRoofType;
    
    @Excel(name = "砖木结构-墙体材料*")
    @ZmData(name = "墙体材料")
    private String zmWallMaterials;
    
    @Excel(name = "砂浆*")
    @ZmData(name = "砂浆")
    private String zmMortar;
    
    @Excel(name = "砖木-承重体系*")
    @ZmData(name = "承重体系")
    private String zmBearingSystem;
    
    @Excel(name = "横墙开洞面积（水平全截面面积1/3）*")
    @ZmData(name = "横墙开洞面积（水平全截面面积1/3）")
    private String zmWallOpeningArea;
    @Excel(name = "砖木结构-构造柱*")
    @ZmData(name = "构造柱")
    private String zmStructuralColumn;
    @ZmData(name = "圈梁")
    @Excel(name = "砖木结构-圈梁*")
    private String zmRingBeam;

    
    //土结构
    @Excel(name = "硬山搁檀*")
    @TData(name="硬山搁檀")
    private String soilHardMountain;
    
    @Excel(name = "墙体*")//!!
    @TData(name="墙体")
    private String soilWall;
    
    @Excel(name = "墙体建筑方式*")
    @TData(name="墙体建筑方式")
    private String soilModeType;

    @TData(name="有无墙体圈梁")
    @Excel(name = "有无墙体圈梁*")
    private String soilWallRingBeam;

    @TData(name="墙体延性材料")
    @Excel(name = "墙体延性材料*")
    private String soilWallDuctileMaterial;

    @TData(name="门窗洞口宽度")
    @Excel(name = "门窗洞口宽度*")
    private String soilDoorWindowWidth;

    @TData(name="承重墙最大间距")
    @Excel(name = "承重墙最大间距*")
    private String soilMaxSpacing;

    @TData(name="屋面形式")
    @Excel(name = "屋面形式*")
    private String soilRoofForm;

    @TData(name="屋面材料")
    @Excel(name = "屋面材料*")
    private String soilRoofingMaterials;

    @TData(name="屋楼盖拉结措施")
    @Excel(name = "屋楼盖拉结措施*")
    private String soilRoofTyingMeasures;
    
    //木结构
    @Excel(name = "结构类型*")
    @MData(name="结构类型")
    private String woodStructureType;
    
    @Excel(name = "柱间支撑*")
    @MData(name="柱间支撑")
    private String woodColumnsBracing;
    
    @Excel(name = "木柱接长处接榫是否牢固*")
    @MData(name="木柱接长处接榫是否牢固")
    private String woodColumnExtension;
    
    @Excel(name = "节点*")
    @MData(name="节点")
    private String woodNode;
    
    @Excel(name = "木径梢径*")
    @MData(name="木径梢径")
    private String woodTipDiameter;

    @MData(name="柱脚与基础锚固")
    @Excel(name = "柱脚与基础锚固*")
    private String woodFoundationAnchoring;

    @MData(name="山尖墙")
    @Excel(name = "山尖墙*")
    private String woodGableWall;

    @MData(name="围护墙")
    @Excel(name = "围护墙*")
    private String woodEnclosureWall;

    @MData(name="墙体连接")
    @Excel(name = "墙体连接*")
    private String woodWallConnection;
    
    //石结构
    @Excel(name = "石结构-墙体材料*")
    @SData(name="墙体材料")
    private String stoneWallMaterials;

    @Excel(name = "承重方式*")
    @SData(name="承重方式")
    private String stoneLoadMode;
    
    @Excel(name = "上下楼层结构类型*")
    @SData(name="上下楼层结构类型")
    private String stoneFloorStructure;
    
    @Excel(name = "楼屋盖类型*")
    @SData(name="楼屋盖类型")
    private String stoneRoofType;

    @Excel(name = "横墙最大间距（m）*")
    @SData(name="横墙最大间距（m）")
    private String stoneMaximumSpacing;
    
    @Excel(name = "横墙开洞面积大于或小于水平全截面面积1/3*")
    @SData(name="横墙开洞面积大于或小于水平全截面面积1/3")
    private String stoneWallOpeningArea;
    
    @Excel(name = "纵横墙连接*")
    @SData(name="纵横墙连接")
    private String stoneWallConnection;
    
    @Excel(name = "石结构-圈梁*")
    @SData(name="圈梁")
    private String stoneRingBeam;
    
    @Excel(name = "四角构造柱*")
    @SData(name="四角构造柱")
    private String stoneFourStructural;


    private String isSubmit;
    private String delFlag;
    private String createName;
    private String createId;
    private Date createTime;
    private String submitter;
    private String submitterId;
    private Date submitTime;

    private String stoneWallMaterialsOther;
    private String stoneRoofTypeOther;
    private String zhStructuralColumnOther;
    private String zhRingBeamOther;
    private String zmRoofTypeOther;
    private String zmStructuralColumnOther;
    private String zmRingBeamOther;
    /**
     *出屋面构件其他
     */
    private String roofComponentOther;
    /**
     *钢结构-结构类型其他
     */
    private String steelStructureTypeOther;
    /**
     *楼盖类型其他
     */
    private String zhFloorTypeOther;
    /**
     *屋盖类型其他
     */
    private String zhRoofTypeOther;
    private String soilModeTypeOther;

    /**
     * 和调查点名称相关联
     */
    @Excel(name = "所属调查点*")
    private String fieldSurveyName;
    /**
     * 抽样调查点id
     */
    private String fieldSurveyId;
    /**
     * 空间数据
     */
    private String geom;

    private Integer rowNum;
    private String errorMsg;
}
